package com.zmn.oms.dubbo.dto.zmn.order;

import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 类描述： 订单列表，应用于 小程序 H5 等
 *
 * @author yule
 * @date 2020/11/12 10:24
 */
@Data
@ToString
public class OrderListAppDRO implements Serializable {
    /**
     * 工单产品集合
     */
    List<OrderProductDRO> productList;

    /**
     * 订单类型：1 新单、2 返修单
     */
    private Integer type;

    /**
     * 做单平台标识
     */
    private Integer plat;

    /**
     * 订单Id
     */
    private Long orderId;

    /**
     * 工单Id
     */
    private Long workId;

    /**
     * 渠道Id
     */
    private Integer channelId;

    /**
     * 渠道名称
     */
    private String channelName;

    /**
     * 订单总金额(订单金额)
     */
    private Integer originalAmount;

    /**
     * 订单总额
     */
    private Integer totalAmount;

    /**
     * 实付金额
     */
    private Integer factAmount;

    /**
     * 预付金
     */
    private Integer prepayAmount;

    /**
     * 优惠预付金额
     */
    private Integer discountPrepayAmount;

    /**
     * 优惠总额
     */
    private Integer discountAmount;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 是否评价
     */
    private Boolean isComment;

    /**
     * 是否存在保修卡
     */
    private Boolean isExistWarranty;

    /**
     * 支付状态：1.未支付 2.支付中 3.部分支付 4.已支付 12.退款中 13.部分退款 14.已退款
     */
    private Integer payStatus;

    /**
     * 退款状态
     */
    private Integer refundStatus;

    /**
     * 啄木鸟预支付状态
     */
    private Integer prepayStatus;

    /**
     * 是否一口价
     */
    private Integer finalPrice;

    /**
     * 预约时间
     */
    private Date dutyTime;

    /**
     * 下单时间
     */
    private Date receiveTime;

    /**
     * 工单状态名称
     */
    private String workStatusName;

    /**
     * 工单结果状态名称
     */
    private String workResultStatusName;

    /**
     * 是否需要拉修（1：不需要，2：需要）
     */
    private Boolean hasDelivery;

    /**
     * 是否待件（1：否，2：是）
     */
    private Boolean hasWaitPart;

    /**
     * 用户取消跟单-是否待取消（1：否，2：是）
     */
    private Integer waitCancel;

    /**
     * 完成时间
     */
    private Date completeTime;

    /**
     * 保修生效时间
     */
    private Date effectiveTime;

    /**
     * 保修过期时间
     */
    private Date expiredTime;

    /**
     * 过期标示 1 过期 2 未过期
     */
    private Boolean effectived;

    /**
     * 类型：1 收据，2保修卡
     * <p>
     * 新保修卡逻辑，已删除收据（1类型）,只存有保修卡（2类型）。但需要兼容历史数据，故要区分
     */
    private Integer warrantyType;

    /**
     * 上门时间
     */
    private Date visitTime;

    /**
     * 联系人
     */
    private String contactName;

    /**
     * 省份名称
     */
    private String provinceName;

    /**
     * 城市名称
     */
    private String cityName;

    /**
     * 区域名称
     */
    private String countyName;

    /**
     * 街道
     */
    private String street;

    /**
     * 地址
     */
    private String address;

    /**
     * 用户Id
     */
    private Long userId;

    /**
     * 评价内容
     */
    private OrderCommentDRO comment;

    /**
     * 业务线
     */
    private Integer bizLine;

    /**
     * 订单业务类型：1保外业务（C），2保内业务（F），3工程业务（B）
     */
    private Integer bizType;
}
